import $store from '@/sheep/store';
import $helper from '@/sheep/helper';
import dayjs from 'dayjs';
import {
	ref
} from 'vue';
import test from '@/sheep/helper/test.js';
import $api from '@/sheep/api';
import {
	Base64
} from 'js-base64'
import sheep from '@/sheep';

// 打开授权弹框
export function showAuthModal(type = 'smsLogin', centerType = 'bottom') {
	console.log(centerType)
	const modal = $store('modal');
	if (modal.auth !== '') {
		closeAuthModal();
		setTimeout(() => {
			modal.$patch((state) => {
				state.auth = type;
				state.type = centerType
			});
		}, 100);
	} else {
		modal.$patch((state) => {
			state.auth = type;
			state.type = centerType
		});
	}
}

export function userihuanggangLogin() {
	console.log(99999999, 5555)
	return new Promise((resolve, reject) => {
		const that = this



		uni.login({
			"provider": "weixin",
			"onlyAuthorize": true, // 微信登录仅请求授权认证
			success: function (event) {
				const { code } = event
				console.log('获取微信code成功:', code)
				
				// ❌ 注意：这里有一个return语句导致后续登录逻辑不执行
				// return; 
				
				//客户端成功获取授权临时票据（code）,向业务服务器发起登录请求。
				sheep.$api.third.wechat.miniWechatLogin({ code: code }).then(res => {
					console.log('登录成功，token:', res.data.token)
					uni.setStorageSync('token', res.data.token)
					$store('user').setToken(res.data.token);
					sheep.$store('user').getInfo();
					resolve(res);
					// $store('user').setToken(res.token);
				}).catch(err => {
					console.error('登录失败:', err);
					reject(err);
				})
				// uni.request({
				//     url: 'https://www.example.com/loginByWeixin', //仅为示例，并非真实接口地址。
				//     data: {
				//         code: event.code
				//     },
				//     success: (res) => {
				// 		// sheep.$router.go('/pages/index/login')
				//         // 获得token完成登录
				// 		uni.setStorageSync('token',res.token)
				//     }
				// });
			},
			fail: function (err) {
				// 登录授权失败
				// err.code是错误码
			}
		})

		// ihgAppJssdk.user.getLoginStatus({
		// 		jumpToLogin: "0",
		// 		success: function(loginRes) {
		// 			if (JSON.parse(loginRes).loginState == '1') {
		// 				uni.showLoading({
		// 					title: '加载中'
		// 				})
		// 				uni.removeStorageSync('get_Token');
		// 				ihgAppJssdk.user.getoToken({
		// 					appId: 'HG_CXSZH_YCC',
		// 					success: function(data) {
		// 						console.log('data', data)
		// 						if (data.code == 1) {
		// 							ihgAppJssdk.network.request({
		// 								url: 'https://gateway.ihuanggang.cn/ee6316bf-ba0b-42c1-8c6f-640db684c4bc',
		// 								method: 'post',
		// 								data: {
		// 									'oToken': data.data
		// 								},
		// 								headers: {
		// 									'x-hg-api-key': '41bbafa0-b390-44f3-b351-23bd9741b733',
		// 									'content-type': 'application/json'
		// 								},
		// 								success: function(res) {
		// 									console.log('res666', res)
		// 									if (res.code == 1) {
		// 										var data = {
		// 											data:res.data
		// 										}
		// 										var oToken = JSON.stringify(data);
		// 										sheep.$api.user
		// 											.ihuanggangLogin(oToken).then(
		// 												res => {
		// 													console.log(
		// 														"----------------------------"
		// 													)
		// 													console.log(res)
		// 													 $store('user').setToken(res.token);
		// 													this.setToken(res.token)
		// 													console.log(
		// 														"----------------------"
		// 													)
		// 													reject()
		// 													// categoryList.value = res
		// 												})
		// 										// uni.request({
		// 										// 	url: "http://wxpay.saas.qiangxianfumin.com:8000/api/h5Login",
		// 										// 	method: 'POST',
		// 										// 	data: {
		// 										// 		'data': res.data
		// 										// 	},
		// 										// 	success: (decrypt) => {
		// 										// 		console.log('decrypt', decrypt);
		// 										// 		uni.hideLoading()
		// 										// 		uni.setStorageSync('get_Token',
		// 										// 			'Bearer ' +
		// 										// 			decrypt
		// 										// 			.data)
		// 										// 		resolve()
		// 										// 	}
		// 										// })
		// 									} else {
		// 										uni.showToast({
		// 											icon: 'none',
		// 											title: `${res.msg}`,
		// 											duration: 3000
		// 										})
		// 										reject()
		// 									}
		// 								},
		// 								fail: function(err) {
		// 									console.log('fail', err)
		// 								}
		// 							})
		// 						} else {
		// 							uni.showToast({
		// 								icon: 'none',
		// 								title: '请先登录i黄冈在进入此页面',
		// 								duration: 3000
		// 							})
		// 							reject()
		// 						}
		// 					}
		// 				})
		// 			} else {
		// 				console.log('else')
		// 				ihgAppJssdk.user.login()
		// 			}
		// 		}
		// })
	})
}

// 关闭授权弹框
export function closeAuthModal() {
	$store('modal').$patch((state) => {
		state.auth = '';
	});
}

// 打开分享弹框
export function showShareModal() {
	$store('modal').$patch((state) => {
		state.share = true;
	});
}

// 关闭分享弹框
export function closeShareModal() {
	$store('modal').$patch((state) => {
		state.share = false;
	});
}

// 打开快捷菜单
export function showMenuTools() {
	$store('modal').$patch((state) => {
		state.menu = true;
	});
}

// 关闭快捷菜单
export function closeMenuTools() {
	$store('modal').$patch((state) => {
		state.menu = false;
	});
}

// 发送短信验证码  60秒
export function getSmsCode(event, mobile = '') {
	const modalStore = $store('modal');
	const lastSendTimer = modalStore.lastTimer[event];

	if (typeof lastSendTimer === 'undefined') {
		$helper.toast('短信发送事件错误');
		return;
	}

	const duration = dayjs().unix() - lastSendTimer;
	const canSend = duration >= 60;

	if (!canSend) {
		$helper.toast('请稍后再试');
		return;
	}

	if (!test.mobile(mobile)) {
		$helper.toast('手机号码格式不正确');
		return;
	}
	const encodePhone = Base64.encode(mobile)
	// 发送验证码 + 更新上次发送验证码时间
	var uuid = ''
	$api.app.sendSms(encodePhone).then((res) => {
		if (res.success) {
			modalStore.$patch((state) => {
				state.lastTimer[event] = dayjs().unix();
			});
			sheep.$store('user').setUUID(res.uuid)
			uni.showToast({
				title: '发送成功',
				icon: 'none',
				mask: true,
			});
		}
	});
	return uuid;
}

// 获取短信验证码倒计时 -- 60秒
export function getSmsTimer(event, mobile = '') {
	const modalStore = $store('modal');
	const lastSendTimer = modalStore.lastTimer[event];

	if (typeof lastSendTimer === 'undefined') {
		$helper.toast('短信发送事件错误');
		return;
	}

	const duration = ref(dayjs().unix() - lastSendTimer - 60);
	const canSend = duration.value >= 0;

	if (canSend) {
		return '获取验证码';
	}

	if (!canSend) {
		setTimeout(() => {
			duration.value++;
		}, 1000);
		return -duration.value.toString() + ' 秒';
	}
}

// 记录广告弹框历史
export function saveAdvHistory(adv) {
	const modal = $store('modal');

	modal.$patch((state) => {
		if (!state.advHistory.includes(adv.src)) {
			state.advHistory.push(adv.src);
		}
	});
}